import SockJS from "~../../sockjs-client";
import Stomp from "~../../stompjs";
import {getToken} from "./auth"

export function Socket(url, path){
    let socket = new SockJS(url);	//这里就是你要建立连接的路径
    this.stompClient = Stomp.over(socket);
    this.stompClient.heartbeat.outgoing = 10000; //前端对后端进行心跳检测的时长 ms
    this.stompClient.heartbeat.incoming = 0; //后端对前端就行心跳检测的时长 ms
    let headers = {
        Authorization:getToken()
    };
//去掉debug打印
    this.stompClient.debug = null;

//这里是订阅路径，如果你要点对点的推送消息，就是这种格式”/user“是前缀，
//“/123”是你要订阅的用户的id，当然了我这个需求是这样的，你想换成什么都可以，
//“/single”就是个标识，加不加无所谓，加上可能比较容易理解吧，这些都要跟你的后端设置对应上
  this.subscribeUrl = path;

//开始连接
    this.stompClient.connect(headers,{}, () => {
        console.info("[WebSocket] 连接成功!");

        //进行订阅服务
        this.stompClient.subscribe(this.subscribeUrl, message => {
            console.log(message);	//这里就是后端推送过来的数据
        });

    }, err => {
        //断开连接
        this.error("[WebSocket] "+err);
    })
}
